The recognition and selection of objects in images present challenging problems in the computational photography area. Systems and methods configured to select an object in an image based on the object's features of interest may significantly improve the effectiveness of image-editing software, as well as its user experience. For instance, selecting an image area containing an object's features of interest—while avoiding selecting an unnecessarily large image area containing unwanted image artifacts—may allow the object to be copied and pasted into another image in a seamless manner. In particular, systems and methods configured to select an object in an image based on the object's features of interest may allow the user of a mobile computing device to perform on-the-fly editing of images captured by a camera of the mobile computing device.
Current image-editing systems typically use a “graph-cut” method to select an object in an image. Graph-cut methods generally attempt to separate an object of interest in an image from the background of the image by determining the similarity (or dissimilarity) of each pixel from its neighboring pixels and selecting an image area bounded by a line drawn between the most dissimilar pixels. When selecting certain types of objects in images (e.g., a human face), such graph-cut methods often select an unnecessarily large image area containing unwanted image artifacts (e.g., background pixels, geometric artifacts, etcetera).